{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "661d3e50",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn import datasets\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "import warnings\n",
    "from matplotlib import cm\n",
    "import rce"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c3fbdefd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "iris = datasets.load_iris()\n",
    "X_temp = iris.data[:, :2] \n",
    "y_temp = iris.target\n",
    "\n",
    "df = pd.DataFrame(X_temp, columns=['length', 'width'])\n",
    "df['label'] = y_temp\n",
    "\n",
    "\n",
    "plt.figure(2, figsize=(8, 6))\n",
    "plt.clf()\n",
    "\n",
    "ix = df[df['label']==1].index\n",
    "df.loc[ix, 'label'] = [0]*len(ix)\n",
    "scaler = MinMaxScaler()\n",
    "df = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)\n",
    "\n",
    "# Plot the training points\n",
    "plt.scatter(df.iloc[:, 0], df.iloc[:, 1], c=df.iloc[:, -1], cmap=plt.cm.Set1, edgecolor=\"k\")\n",
    "plt.xlabel(\"Sepal length\")\n",
    "plt.ylabel(\"Sepal width\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "64853243",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.iloc[:,[0,1]]\n",
    "y = df['label']\n",
    "x_min, x_max = X.iloc[:, 0].min() - 0.5, X.iloc[:, 0].max() + 0.5\n",
    "y_min, y_max = X.iloc[:, 1].min() - 0.5, X.iloc[:, 1].max() + 0.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "fcd1628d",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cart tables saved.\n",
      "\n",
      "### Starting the Cart iterative approach ###\n",
      "time limit: 100\n",
      "\n",
      "\n",
      "------------------------ Iteration: 0 ------------------------\n",
      "Optimizing the master problem...\n",
      "solution master [0.5138888955116272, 0.3] generated in  0.2 s\n",
      "--> Distance to the factual instance: 0.03611110448837285\n",
      "--> Distance to the border: 1e-05\n",
      "Optimizing the adversarial problem...\n",
      "Parameter PoolSolutions unchanged\n",
      "   Value: 10  Min: 1  Max: 2000000000  Default: 10\n",
      "Changed value of parameter PoolSearchMode to 1\n",
      "   Prev: 0  Min: 0  Max: 2  Default: 0\n",
      "Status: optimal\n",
      "solution adv problem [0.5555605522441738, 0.291671649281918] generated in  0.0 s\n",
      "Status adversarial problem: True\n",
      "\n",
      "\n",
      "------------------------ Iteration: 1 ------------------------\n",
      "Optimizing the master problem...\n",
      "solution master [0.5972322089767204, 0.3] generated in  0.3 s\n",
      "--> Distance to the factual instance: 0.047232208976720313\n",
      "--> Distance to the border: 1e-05\n",
      "Optimizing the adversarial problem...\n",
      "Parameter PoolSolutions unchanged\n",
      "   Value: 10  Min: 1  Max: 2000000000  Default: 10\n",
      "Changed value of parameter PoolSearchMode to 1\n",
      "   Prev: 0  Min: 0  Max: 2  Default: 0\n",
      "Status: optimal\n",
      "solution adv problem [0.5555605522441738, 0.291671649281918] generated in  0.0 s\n",
      "Status adversarial problem: True\n",
      "\n",
      "\n",
      "------------------------ Iteration: 2 ------------------------\n",
      "Optimizing the master problem...\n",
      "solution master [0.6389037769142032, 0.3] generated in  0.3 s\n",
      "--> Distance to the factual instance: 0.08890377691420238\n",
      "--> Distance to the border: 0.02917\n",
      "Optimizing the adversarial problem...\n",
      "Parameter PoolSolutions unchanged\n",
      "   Value: 10  Min: 1  Max: 2000000000  Default: 10\n",
      "Changed value of parameter PoolSearchMode to 1\n",
      "   Prev: 0  Min: 0  Max: 2  Default: 0\n",
      "Status: optimal\n",
      "solution adv problem [0.6889037769142039, 0.25] generated in  0.0 s\n",
      "Status adversarial problem: True\n",
      "\n",
      "\n",
      "------------------------ Iteration: 3 ------------------------\n",
      "Optimizing the master problem...\n",
      "solution master [0.6389038657092669, 0.3208433358167895] generated in  0.4 s\n",
      "--> Distance to the factual instance: 0.10974720152605595\n",
      "--> Distance to the border: 0.04168\n",
      "Optimizing the adversarial problem...\n",
      "Parameter PoolSolutions unchanged\n",
      "   Value: 10  Min: 1  Max: 2000000000  Default: 10\n",
      "Changed value of parameter PoolSearchMode to 1\n",
      "   Prev: 0  Min: 0  Max: 2  Default: 0\n",
      "Status: optimal\n",
      "solution adv problem [0.5889038657092669, 0.3624950149011763] generated in  0.0 s\n",
      "Status adversarial problem: True\n",
      "\n",
      "\n",
      "------------------------ Iteration: 4 ------------------------\n",
      "Optimizing the master problem...\n",
      "solution master [0.6472322089766749, 0.3208433358167895] generated in  0.3 s\n",
      "--> Distance to the factual instance: 0.11807554479346433\n",
      "--> Distance to the border: 0.05001\n",
      "Stopping because the distance to the border is >= rho\n",
      "### Iterative approach completed in 8.7 s ###\n",
      "\n"
     ]
    }
   ],
   "source": [
    "rho = 0.05\n",
    "unc_type = 'linf'\n",
    "obj_type = unc_type\n",
    "clf_type = 'cart'\n",
    "clf = DecisionTreeClassifier(max_depth=10).fit(X, y)\n",
    " \n",
    "u = pd.DataFrame([[0.55, 0.3]], columns=X.columns)\n",
    "\n",
    "final_model, num_iterations, comp_time, x_, solutions_master = rce.generate(clf, X, y, 'results_rce', clf_type, 'binary', u, list(u.columns), [], [], {}, [], [], [], rho,\n",
    "                 unc_type=unc_type, iterative=True)\n",
    "solution_subopt, dist = rce.find_maxrad(x_, clf_type, 'results_rce', x_.columns, [], [], {}, [], [], [], clf.predict(u)[0], unc_type)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "89b878df",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2ad50b4e850>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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pE9/+tM57BnyiXVgAQAoAO+8847OPPNMxWIxzZw5U8OGDZOZaejQoT3Wh1WrVmn8+PEaM2aMVq5c2WPt7m2ef/llfXrWKTp2+nQ997d5+e7OXokACwDwXlNTk8LhcMbHlZSUtC2ynm+PPPKIIpGILr30Uv3P//xPvrvjtcMPP1zvvfeeKioq8t0V5AgBFgDgtaamJg0aNEBNTZkH2LKyEn388daCCLFr166VJE2YMCHPPfFfRUWFJk2alO9uIIeYAwsA8Fo4HFZTU1hrn5Nq3uj6Y+1zUlNTuFsjt9l09dVXq6ioSHfffbckac6cOW3zX5PncD799NO66KKLNHXqVO2zzz6qqKjQmDFj9KUvfUlvvPFG2jbeeustnX/++Ro/frwqKys1ePBgHXroofr+97+v1atXS4rPNR0/frwkafXq1W19aH202t2c1HvuuUdFRUW64IIL2r0eiUT0pz/9Seeee64OPPBA9e/fX3369NEBBxygb3/729qwYUPG/3ad6WwO7KpVq1RUVKRx48bJOac77rhDhx9+uEKhkPqNHqPPnnaa5r/+eso6l69cqQu+9S194pBPqmyfoaoaOUpjD56sk888S3f96U9t5WaePEufnnWKJOmFV15RoP+Atn/DcePGtZXbvHmzbrvtNp188skaP368+vTpo/79++uII47QDTfcoKamppT9SP4+HnzwQR1zzDHq37+/QqGQjj76aP3973/v9N+lpaVFd911l0444YR259AJJ5yg22+/PeUxzzzzjM444wyNHDlS5eXlGjZsmE4//XTNnz+/03Z6AiOwAIC9QqhP/OGbT37yk/ryl7+sV155RStXrtRRRx3VFiT322+/tnIXXnih1q5dqwMPPFBHHXWUioqKtHTpUt1333166KGH9Oc//1mnnXZah/pvvPFGXXbZZYrFYpo4caJOOeUUNTY2auXKlbr55pt14IEH6rzzztP06dO1Y8cOPfjgg6qsrNTpp5+e1c/50Ucf6bzzzlPfvn01adIkHXzwwaqvr9fChQt1++23669//ateeumlts+ea3PmzNFf/vIXzZgxQyeddJIWLligp557Xi/+33w9/7d5OmLatLay7y1erBmfO1G1dXXab8IEnfzZExQMBrVu/Qa9OH++1ldX6/x//VdJ0mePP15lZaV64plntc+QIfrc8cfLJe5CN3DgwLY6n3zySX3nO9/RiBEjNG7cOB1xxBHavHmzXn/9dV122WV69NFH9cwzz6i0tDRl/6+66ir95Cc/0ZFHHqkTTzxRS5cu1fz58zV79mzdd999OvXUU9uVr6mp0SmnnKJXXnlFxcXFOvLIIzV8+HBt3LhRixYt0rPPPqtvfetb7Y655JJLdMsttygQCGjq1KmaMWOG1qxZo0cffVR/+9vf9Jvf/Eb//u//noVvI3MEWAAA8mj27NmaPXu2LrjgAq1cuVJz5szReeed16HcDTfc0DbaluyRRx7RWWedpW984xs68cQTVV5e3vbevHnzdOmll6qsrEx33XWXvvjFL7Y7dvHixTIzSfFAd/zxx+vBBx/UoEGD9Pvf/z6rn7Nv37566KGH9NnPflYlJSVtr0ciEV111VW6/vrr9Z3vfEfz5uX+oqfVq1frhRde0MKFCzVx4kRJktu+TV/79rd1171/0n9fd53+8cADbeVv/uUvVVtXpx9ffrku/97F7epqbGzUG28vaNu/9Dvf1qcOm6YnnnlWkyZM0F2//IViVaEOfTj00EP18ssv61Of+lS717dt26ZzzjlHTz31lG677TZ973vfS/kZbr/9dr388ss64ogj2l67+uqr9eMf/1iXXXZZhwD7la98Ra+88oqmTJmi++67T2PHjm17r6WlpcPI7e9+9zvdcsstGj9+vObOnavJkye3vffiiy9q9uzZ+uY3v6np06fnZdoLUwgAAPDA7NmzO4TX1tfPOOMMbdmyRc8991y7966++mpJ0o9//OMO4VWSDjjgAO2///656fAuqqqqNGvWrHbhVZKKi4v1k5/8RMOHD9cTTzyhurq6HunPz372s7bwKknBYFA/ueIKSdILr/yfIpFI23ubNm2WJH3+hH/pUE95ebmOmX5Uxu3vv//+HcKrJPXv31+33nqrJOn+++/v9PirrrqqXXiVpEsvvVR9+/bVsmXL2uZUS9LChQv10EMPqaysTA8//HC78CrFpyWccsopbfuxWEzXXHONJOlPf/pTu/AqScccc4wuv/xyhcNh/fa3v+3aB84yRmABAPDEhg0b9Pe//11LlixRbW2tWlpaJMVHUiVp2bJl+vznPy9J2rhxo9555x0FAoEO81HzaeHChXr22We1atUq1dfXKxaLSYqPAsZiMa1YsUJTpkzJaR+Kior0uc99rsPrQ/fZR/379dO27du1ZetWDd1nH0nSYVMP1d+fekrfvPhiXXXppTp2+vSsXPgXjUb1/PPPa/78+dq4caMaGxvlnJNzTlL8++zMySef3OG10tJSfeITn9CCBQu0fv16jRo1SpL0xBNPSJI+//nPa8SIEbvt14IFC7RhwwaNGzdOU6dOTVnm2GOPlaS8zYUlwAIA4IFrrrlG1113XbuRwV3V1ta2ba9Zs0aSNGzYMPXt2zfn/dud+vp6nXfeeXr44YfTlkv+DLkybNgwFSfmpe4qVFWlbdu3q6m5ue21S/7zP/XKq6/q6edf0IlnfFHFxcU65KCDdPRRR+rs007TYYcemnEfli9frjPOOEPvv/9+p2XS/VuMHj065etVVVWS1O4isNZzIXlOdToffvihJGnlypXtLuBL5eOPP+5SndlGgAUAoMA99NBDuuaaa9SnTx/9/Oc/18yZMzV8+HCVl5fLzHT55Zfr+uuvbxu5y6fWEdVdXX755Xr44Yc1adIkXXvttZo2bZoGDRrUNqVgxowZevXVV3vkMwQCmc2grKio0JMPPaQ33n5b/3jmGc1/7XX93+uv680FC3TLL36pb8yZo1/c+NOM6jzrrLP0/vvv66STTtL3vvc9HXDAAQqFQiouLlY4HN7tGraZfoZMtH6HQ4cO1QknnJC2bPKFaT2JAAsAQIG77777JMXnsn71q1/t8P6KFSs6vNY6QlddXa2ampqsjcK2Bs7O5qq2Lsu1q9bP8Oc//7nDnEop9WcoNIcdemjbaGtLS4sefuwxnfeNb+pXd96pM2afoplHH92lepYsWaJ3331XQ4YM0QMPPNBhlHP58uVZ7XfrVIKlS5d2qfzIkSMlxcNpti/myxYu4gIAoMBt3bpVkjRmzJgO723atElPP/10h9eHDh2qQw45RLFYTHfddVeX2mkNp61za1MZPny4pHgI25VzTv/4xz9SHpfuMzzxxBN5+1N0dxUVFemM2bP12cRas+8sWtT2XkliekJn/46t/xbDhw9P+Sf6PyWtK5sNn/3sZyVJjz/+eJfW2z3ssMM0aNAgLV68OO0Uh3xiBBYAepnyFzuGnVyKmsmGjlJgR11O/uwZqNuzOZOBuloFrOPrqZY+ypf9999fTz/9tO644w597nOfawuaNTU1Ov/881VTU5PyuCuvvFJnnHGGrrzySo0ePbrDOrGty2i1rkQwePBglZSUaOPGjdq6dasGDBjQoc7jjz9e11xzje69915985vf1AEHHCApvhzWFVdcoTfffLPTz/Duu+/q9ttv1+WXX972+tKlS3XhhRdm/o/Sg375uzt1/LHHaL9dlova+NFHenNBfAmtMYlRTkkaOTx+odTyf/5TkUhEwV3qmzhxooLBoBYtWqTnn39exx13XNt78+bNa1uFIFs++clP6pRTTtGjjz6q0047TXPnzm03h7alpUWPP/64Zs2aJSm+MsSVV16piy66SGeccYbuuOMOzZgxo12d0WhUL7zwgioqKlKuppBrBFgAAArcf/3Xf+mPf/yjHn/8cU2YMEFHHHGEIpGIXnzxRVVUVOj8889POcp66qmn6sc//rF+9KMf6cwzz9SkSZM0efLkthsZLF68WHfeeWdbgC0uLtasWbP0wAMPaOrUqZo+fXrbXMzW5ZKmT5/eFoaOOOIITZ8+XeXl5VqwYIFqa2v1X//1X/r5z3/eoS9XXnmlzjzzTP33f/+37r//fh1wwAHatGmTXn75Zc2YMUPDhg3L+92dOnPHPffoW5dcon3HjNFB+++vUFWVNm/5WC/Nf1WNjY369DHH6JQTT2wrP3rUSE2bMkVvLligydNnaOphh6msrEwDBw7Uddddp0GDBunCCy/Uz3/+c51wwgmaMWOGhg8frmXLluntt9/WZZddpmuvvTarn+HOO+/UySefrNdee02TJk1qdyOD9957T5s3b243YnzhhRdqzZo1uummm3TcccfpwAMP1Lhx41ReXq6NGzdq4cKF2r59u37xi1/kJcAyhQAAgAK377776s0339Q555yjYDCoxx57TO+++67OPvtsvfnmm21zFlP54Q9/qJdeeklnn3226urq9NBDD7Xdjel73/ueZs6c2a78r371K33ta1+TmemBBx7Q73//+w7zIP/yl7/osssu07Bhw/TCCy/otdde04wZM/TGG2/okEMOSdmPL3zhC3r22Wf16U9/WtXV1Zo3b542b96sH/3oR3rsscc6XRWgEPzPFVfo6xdcoH59++rVN9/UfY88osVLluqIqVN1969+qcfvv6/DVID777lH55xxhmrr6jR37lz9/ve/19y5c9vev+mmm3THHXdoypQpevvtt/X444+rvLxcf/7zn9vWYM2m/v3767nnntMvfvELHX744Vq4cKEeeOABLV++XIcc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",
      "text/plain": [
       "<Figure size 800x800 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 10), dpi=80)\n",
    "xx, yy = np.meshgrid(np.arange(x_min-1, x_max-0.25, 0.0005),\n",
    "                     np.arange(y_min-1, y_max-0.5, 0.0005))\n",
    "f = lambda x: clf.predict(x)\n",
    "Z = f(np.c_[xx.ravel(), yy.ravel()])\n",
    "\n",
    "# Put the result into a color plot\n",
    "Z = Z.reshape(xx.shape)\n",
    "CS = plt.contourf(xx, yy, Z, cmap=plt.cm.Pastel1)\n",
    "plt.scatter(u.iloc[:, 0], u.iloc[:, 1], color='gold', edgecolors='k', label='factual instance', marker='s', s=150)\n",
    "\n",
    "\n",
    "ii = 0\n",
    "for k, v in solutions_master.items():\n",
    "    ii += 1\n",
    "    x_ = v['sol']\n",
    "    if unc_type == 'l2':\n",
    "        uncertainty_set = plt.Circle((x_.iloc[0,0], x_.iloc[0,1]), rho, color='k', fill=False, alpha=ii/len(solutions_master), zorder=ii)\n",
    "    elif unc_type == 'linf':\n",
    "        uncertainty_set =  plt.Rectangle((x_.iloc[0,0]-rho, x_.iloc[0,1]-rho), rho*2, rho*2, color='k', fill=False, alpha=ii/len(solutions_master), zorder=ii)\n",
    "#     if ii%1 == 0:\n",
    "#         plt.gca().add_patch(uncertainty_set)\n",
    "    if ii == len(solutions_master):\n",
    "        if unc_type == 'l2':\n",
    "            uncertainty_set = plt.Circle((x_.iloc[0,0], x_.iloc[0,1]), rho, color='k', fill=True, alpha=0.5, zorder=ii)\n",
    "        elif unc_type == 'linf':\n",
    "            uncertainty_set =  plt.Rectangle((x_.iloc[0,0]-rho, x_.iloc[0,1]-rho), rho*2, rho*2, color='k', fill=True, alpha=0.5, hatch=r\"////\", zorder=ii)\n",
    "    plt.gca().add_patch(uncertainty_set)\n",
    "    \n",
    "plt.scatter(x_.iloc[0,0], x_.iloc[0,1], color='k', edgecolors='k', marker='s', alpha=1, s=100, label='RCE')\n",
    "plt.xlim(x_min+0.65, x_max-0.65)\n",
    "plt.ylim(y_min+0.45, y_max-0.9)\n",
    "plt.locator_params(nbins=6)\n",
    "plt.yticks(fontsize=25)\n",
    "plt.xticks(fontsize=25)\n",
    "plt.gca().set_aspect('equal', adjustable='box')\n",
    "plt.legend(loc='upper right', prop={'size': 20})"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
